package com.aaa.sbms.service;

import com.aaa.sbms.util.ResultUtil;

import java.util.Map;

public interface PromotionService {

    /**
     * 查询部门
     * @return
     */
    Map depts();

    /**
     * 查询部门
     * @return
     */
    Map positions();

    /**
     * 分页查询晋升发布
     * @param map
     * @return
     */
    Map proPage(Map map);

    /**
     * 分页查询晋升发布历史记录
     * @param map
     * @return
     */
    Map proHistoryPage(Map map);

    /**
     * 分页查询晋升审核记录
     * @param map
     * @return
     */
    Map proCheckPage(Map map);

    /**
     * 分页查询晋升审核历史记录
     * @param map
     * @return
     */
    Map proRecordPage(Map map);

    /**
     * 查询一条晋升发布记录
     * @param id
     * @return
     */
    Map proOne(int id);

    /**
     * 查询一条晋升审核记录
     * @param id
     * @return
     */
    Map proCheckOne(int id);

    /**
     * 添加晋升申请
     * @param map
     * @return
     */
    int addProAndHistory(Map map);

    /**
     * 添加晋升申请
     * @param map
     * @return
     */
    int addProCheck(Map map);

    /**
     * 修改晋升申请
     * @param map
     * @return
     */
    int updatePro(Map map);

    /**
     * 确定审核晋升
     * 查询promotion表人数还需不需要
     * 如果需要，判断是通过还是驳回
     * 如果通过，修改promotion表人数-1，改变该员工positionid，添加到晋升审核历史记录表，根据id删除晋升审核表的那条数据
     * 如果驳回，添加到晋升审核历史记录表，根据id删除晋升审核表的那条数据
     * 如果不需要已满，返回提示信息
     * @param map
     * @return
     */
    ResultUtil yes(Map map);
}
